ofsp2026 21_simpleSol
Created time
Mar 28, 2026 08:45 AM
type
Post
status
Published
date
Mar 28, 2026
slug
ofsp2026 21_simpleSol
summary
tags
ofsp2026
OpenFOAM
category
post
icon
password
Place
Last edited time
Mar 28, 2026 09:15 AM
Important
访问 https://aerosand.cc 以获取最近更新。
0. 前言
在上一篇讨论中,我们详细讨论了 SIMPLE 算法,也粗略看了 OpenFOAM 中 SIMPLE 算法的一部分代码片段。
这里,我们将基于对算法的讨论,进行代码实现,理解一些代码的使用。
本文主要讨论
SIMPLE算法实现
计算 cavity 算例
1. 控制方程
控制方程如下
连续方程(质量方程)
动量方程为
依然有如下处理
- 稳态
- 粘性项已经简化
- 不考虑重力
- 密度已经处理
2. 项目准备
终端输入命令,建立项目
2.1. 说明文件
为项目提供说明文件
2.2. 脚本文件
我们精简之前的脚本。
终端输入命令,新建脚本
清理脚本
Allclean 如下运行脚本
Allrun 如下不同担心脚本,随着讨论深入,我们会不断扩充脚本的内容,尝试和熟悉不同的写法。
Note
使用
chmod +x {Allclean,Allrun} 提升脚本权限。以后继续使用此脚本即可,除非强调,不再赘述。
3. 项目实现
我们用最简单的代码去实现 SIMPLE 算法。
3.1. 主源码
考虑
20_simple 中的讨论,在主源码中实现 SIMPLE 算法主要框架可以看到算法主框架和上一篇的讨论一样。
3.2. 场的接入
场的接入
createFields.H 如下3.3. 动量预测
动量预测在
UEq.H 中,代码如下关于动量方程的松弛,后续会进行讨论。读者后续可以将该松弛代码注释,比较计算差别。
3.4. 压力动量修正
压力动量修正在
pEqn.H 中,代码如下压力同样进行了松弛,后续会讨论,读者可以自行尝试注释,查看计算差别。
Tip
注意,为了方便理解,这里没有进行非正交修正。因为后面使用的 cavity 算例网格简单,所以也没有什么影响。
3.5. 项目Make
如上面讨论的那样,该求解器并没有使用更多的库,所以项目 Make 文件无需额外增加链接的指定。
其中的
Make/files 内容如下其中的
Make/options 内容如下3.6. 编译
终端输入命令,编译整个项目
编译成功,没有问题。
3.7. 测试算例
我们调整拷贝的测试算例,用来测试上述求解器。
控制字典
controlDict 中修改如下求解字典
fvSolution 中修改如下其他文件保持不变。
3.7. 运行
求解器项目编译没有问题,直接通过脚本运行即可。
运行项目
后处理可视化
可以在 paraview 中查看计算结果。
读者可以修改部分代码,探索不同语句的作用。
4. 小结
通过求解器项目的实现和讨论,相信我们现在应该对 PISO 算法和求解器实现有了较为全面的理解。
下一篇,我们将讨论 PISO 算法。
本文完成讨论
SIMPLE算法实现
计算 cavity 算例
支持我们
Tip
希望这里的分享可以对坚持、热爱又勇敢的您有所帮助。
如果这里的分享对您有帮助,您的评论或赞助将对本系列以及后续其他系列的更新、勘误、迭代和完善都有很大的意义,这些行动也会为后来的新同学的学习有很大的助益。
赞助打赏时的信息和留言将用于展示和感谢。

Copyright @ 2026 Aerosand
- 课程(文本、图片等):CC BY-NC-SA 4.0
- OpenFOAM 开发代码 :GPL v3
- 其他代码:MIT License
Loading...